<?php
Globals::requireClass('Table');

class AclResourceTable extends Table
{
	public static $defaultConfig = array(
		'table' => 'admin_res'
	);
	
	public function validate(array &$data)
	{
		if (array_key_exists($key = 'name', $data))
		{
			$data[$key] = strtolower(trim($data[$key]));
			
			if (!preg_match('/^[0-9a-z_]{1,16}$/', $data[$key]))
			{
				$this->message = '名称无效，名称由1-16位数字、小写字母以及下划线（_）组成。';
				return false;
			}
			
			if ($this->mode === parent::MODE_ADD)
			{
				$row = $this->getRow(array($key => $data[$key]));
				
				if ($row)
					Globals::error('名称已被使用，请使用其他名称。');
			}
		}
		
		if (array_key_exists($key = 'description', $data))
		{
			$data[$key] = trim($data[$key]);
			
			if (empty($data[$key]))
			{
				$this->message = '描述为空。';
				return false;
			}
		}
		
		return true;
	}
}

Config::extend('AclResourceTable', 'Table');
